Desktop computers and computer networks are usually connected to various peripheral devices to extend the computer's capabilities. One common peripheral device is a printer, which produces text and images in hardcopy format. There are many different types of printers, broadly grouped into impact printers and non-impact printers. Printers may also be categorized by the environment under which they operate, such as local and network printers. A local printer is one that is directly connected to one of the ports on a desktop, workstation, or other single host computer, and a network printer is shared by multiple computers over a network.
Local printers receive print data from a source, such as a single host computer, and network printers receive print data via a network that contains at least one host computer or network server. In typical desktop personal computer (PC) environments, “print jobs” are submitted (via the direct connection or network) to the printer, as a means to pass the print data to the printer. Print jobs represent units of work to be run on a printer, and can include printing one or multiple files, depending on how the print jobs are requested. In single host environments, and particularly in network environments, a connected printer may be presented with a large print file or multiple print files by way of the print jobs. Generally, the printer is equipped with sufficient memory to accept large or multiple print jobs, thereby freeing the computer to continue normal operations by allowing the printer to retain the print jobs until they are physically printed. Alternatively, print spooling may be employed which includes a program or device that controls the flow of print data to the printer, and generally stores the programs in an organized manner on a hard disk until the printer becomes available.
Network printers may include multiple data channels, which are physical or logical attachments, through which print jobs can be received by the network printer. These data channels represent any printer input configuration, i.e., methods of printing, examples of which include LPD (a printing protocol of TCP/IP), IPP (internet print protocol), and the like. Each of the multiple data channels may present print jobs for printing, and more than one data channel may present a job at the same time.
While multiple data channels may be associated with a printer, the printer can only print one job at a time. Traditionally, where multiple print jobs from one data channel or multiple data channels are pending, the print jobs are printed in the order in which they are received. Therefore, where one data channel is associated with high priority print jobs, these high priority jobs might have to wait behind many lower priority jobs associated with other data channels. For example, in a particular computing environment, print jobs submitted over a TCP/IP LPR data channel may be considered higher priority than print jobs submitted over a different type of data channel. In such cases, it is undesirable and inefficient to force the higher priority print jobs to be held in abeyance while the lower priority print jobs consume valuable printer resources.
In view of the sophistication of modern day printers and the increasing use of multiple data channels associated with network printers, it would be desirable to avoid these and other problems associated with prior art systems for printing multiple print jobs. A need exists in the printing industry for a system and manner of governing the order that print jobs from multiple data channels will be printed. The present invention provides a solution to the aforementioned and other shortcomings of prior art printing systems, while offering additional advantages over the prior art.